package org.example.service;

import org.example.common.entity.Product;
import java.math.BigDecimal;
import java.util.List;

public interface ProductService {
    
    /**
     * 获取商品的最终价格（含折扣）
     */
    public abstract BigDecimal getFinalPrice(Product product);

    /**
     * 查询热销商品列表以及优惠后的价格
     */
    public abstract List<Product> getHotProducts();
    
    /**
     * 插入商品
     */
    public abstract int insertProduct(Product product);
    
    /**
     * 更新商品
     */
    public abstract int updateProduct(Product product);
    
    /**
     * 删除商品
     */
    public abstract int deleteProduct(Long id);
    
    /**
     * 根据ID获取商品
     */
    public abstract Product getProductById(Long id);
    
    /**
     * 获取推荐商品列表
     */
    public abstract List<Product> getRecommendedProducts();
    
    /**
     * 设置商品热销状态
     */
    public abstract int setHotStatus(Long id, Integer status);
    
    /**
     * 设置商品推荐状态
     */
    public abstract int setRecommendedStatus(Long id, Integer status);

    /**
     * 获取新商品列表
     * 默认查询最近30天内上架的商品
     */
    List<Product> getNewProducts();
}